package com.djt.book_system.controller;

import com.djt.book_system.entity.Auths;
import com.djt.book_system.service.AuthsService;
import com.djt.book_system.util.Result;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Auths)表控制层
 *
 * @author makejava
 * @since 2021-05-19 10:48:07
 */
@RestController
@RequestMapping("auths")
public class AuthsController {
    /**
     * 服务对象
     */
    @Resource
    private AuthsService authsService;

    /**
     * 通过主键查询单条数据
     *
     * @param aid 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Auths selectOne(Integer aid) {
        return this.authsService.queryById(aid);
    }

    /**
     *查询所有权限信息
     *
     * @param auths 权限对象
     * @return 单条权限数据
     */
    @GetMapping("selectAll")
    public List<Auths> authsList(Auths auths) {
        return this.authsService.queryAll(auths);
    }

    /**
     *分页查询所有信息
     *
     * @param page 分页页码
     * @param limit 单页最大条数
     * @return
     */
    @GetMapping("selectAll1")
    public Result selectList(int page,int limit) {
        //offset 每页第一条数据在数组中的下标
        int offset = (page-1)*limit;
        //分页查询出来的list集合
        List<Auths> authsList = this.authsService.queryAllByLimit(offset,limit);
        //数据总条数
        int count = authsService.authsCount();
        if (authsList.size()==0){
            //查询上一页数据
            offset = (page-1-1)*limit;
            authsList = this.authsService.queryAllByLimit(offset,limit);
        }
        //返回查询结果
        return Result.success(count,authsList);
    }

    /**
     *修改单条信息
     *
     * @param auths
     */
    @PostMapping("updateAuths")
    public void updateAuths(Auths auths){
        authsService.update(auths);
    }

    /**
     * 通过主键删数据
     * @param aid
     */
    @GetMapping("deleteAuths")
    public void deleteAuths(Integer aid){
     authsService.deleteById(aid);
    }

    /**
     * 根据主键批量删除数据
     *
     * @param aids 主键集合
     */
    @GetMapping("authsBatchRemove")
    public void authsBatchRemove(Integer[] aids){
        authsService.batchRemove(aids);
    }

    /***
     * 添加数据
     *
     * @param auths
     */
    @PostMapping("insertAuths")
    public void insertAuths(Auths auths){
        authsService.insert(auths);
    }
}
